package daiLi.guideDongtaidaili;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

public class DebugInvocationHandler implements InvocationHandler {
    private final Object target;
    public DebugInvocationHandler (Object target){
        this.target=target;
    }
//    当使用代理对象调用方法的时候实际调用的是这个方法
    @Override
//    参数:动态生成的代理类,与代理类对象调用的方法相对应,当前方法的参数
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        System.out.println("before"+method.getName());
        Object result = method.invoke(target, args);
        System.out.println("after"+method.getName());
        return result;
    }
}
